////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//	MathRect3D.h
//  MathLib
//
//  Created by Gregory Maks on 8/14/09.
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef MATH_RECT3D_H
#define MATH_RECT3D_H


// Predefinitions
struct Vector4;


/// Represents a rect in 3D space, defined by 2 opposite corner points.
struct Rect3D
{
public:
	Vector4 p0;
	Vector4 p1;
	
	
public:
	void ctor();
	
	Rect3D ();
	Rect3D (const Rect3D &aRect);
	Rect3D (Vector4 aPt0, Vector4 aPt1);
	
	floatType Width();
	floatType Height();
	
	bool IsInTheSamePlane(Rect3D &aRect, floatType aAllowedDelta = 0.0);
	bool IsInTheSamePlane(Vector4 &aPoint, floatType aAllowedDelta = 0.0);
	
	
};


#endif //MATH_RECT3D_H